package com.hsurosy.hsuchain.nft.auth.exception;

import com.hsurosy.hsuchain.nft.base.exception.BizException;
import com.hsurosy.hsuchain.nft.base.exception.ErrorCode;

/**
 * 认证异常类
 *
 * @Author Hsu琛君珩
 * @Date 2024-10-05 19:26
 * @Description
 * @Version: v1.0.0
 */
public class AuthException extends BizException {

    /**
     * 使用错误码构造异常
     *
     * @param errorCode 错误码，表示发生的错误类型
     */
    public AuthException(ErrorCode errorCode) {
        super(errorCode);
    }

    /**
     * 使用错误信息和错误码构造异常
     *
     * @param message 错误信息，用于描述异常的具体情况
     * @param errorCode 错误码，表示发生的错误类型
     */
    public AuthException(String message, ErrorCode errorCode) {
        super(message, errorCode);
    }

    /**
     * 使用错误信息、原因和错误码构造异常
     *
     * @param message 错误信息，用于描述异常的具体情况
     * @param cause   异常的原因
     * @param errorCode 错误码，表示发生的错误类型
     */
    public AuthException(String message, Throwable cause, ErrorCode errorCode) {
        super(message, cause, errorCode);
    }

    /**
     * 使用异常原因和错误码构造异常
     *
     * @param cause   异常的原因
     * @param errorCode 错误码，表示发生的错误类型
     */
    public AuthException(Throwable cause, ErrorCode errorCode) {
        super(cause, errorCode);
    }

    /**
     * 完整的构造方法，包含所有参数
     *
     * @param message            错误信息，用于描述异常的具体情况
     * @param cause              异常的原因
     * @param enableSuppression   是否启用异常抑制
     * @param writableStackTrace  堆栈信息是否可写
     * @param errorCode           错误码，表示发生的错误类型
     */
    public AuthException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace, ErrorCode errorCode) {
        super(message, cause, enableSuppression, writableStackTrace, errorCode);
    }

}
